package se.webbzon.oschi01.nbt;

import se.webbzon.oschi01.singleton.Singleton;
import se.webbzon.oschi01.singleton.Singletons;

public class EndTag implements Tag<Object>, Singleton {
	
	private EndTag() {};

	@Override public boolean hasParent() {
		return false;
	}

	@Override public Tag<?> getParent() {
		return null;
	}

	@Override public TagSibling getSibling() {
		return null;
	}

	@Override public void setSibling(TagSibling sibling) {}

	@Override public void setName(String name) {}

	@Override public EndTagFactory getFactory() {
		return Singletons.instance(EndTagFactory.class);
	}

	@Override public long size() {
		return 0;
	}

	@Override public Object getValue() {
		return null;
	}

	@Override public void addListener(TagListener listener) {
		
	}

	@Override public void removeListener(TagListener listener) {
		
	}

	@Override public void setValue(Object value) {
		
	}

	@Override public Class<Object> getValueClass() {
		return null;
	}

	@Override public TagGeneration<Tag<?>> getGeneration() {
		return null;
	}

	@Override public void broadcastEvent(TagEvent event) {}

	@Override public boolean hasChildren() {
		return false;
	}

	@Override public TagGeneration<Tag<?>> getChildren() {
		return null;
	}

	@Override public EndTag clone() {
		return this;
	}

	@Override public boolean canAdopt(Tag<?> child) {
		return false;
	}

}
